import Main from '@/components/main'

/**
 * iview-admin中meta除了原生参数外可配置的参数:
 * meta: {
 *  title: { String|Number|Function }
 *         显示在侧边栏、面包屑和标签栏的文字
 *         使用'{{ 多语言字段 }}'形式结合多语言使用，例子看多语言的路由配置;
 *         可以传入一个回调函数，参数是当前路由对象，例子看动态路由和带参路由
 *  hideInBread: (false) 设为true后此级路由将不会出现在面包屑中，示例看QQ群路由配置
 *  hideInMenu: (false) 设为true后在左侧菜单不会显示该页面选项
 *  notCache: (false) 设为true后页面在切换标签后不会缓存，如果需要缓存，无需设置这个字段，而且需要设置页面组件name属性和路由配置的name一致
 *  access: (null) 可访问该页面的权限数组，当前路由设置的权限会影响子路由
 *  icon: (-) 该页面在左侧菜单、面包屑和标签导航处显示的图标，如果是自定义图标，需要在图标名称前加下划线'_'
 *  beforeCloseName: (-) 设置该字段，则在关闭当前tab页时会去'@/router/before-close.js'里寻找该字段名对应的方法，作为关闭前的钩子函数
 * }
 */

export default [
  {
    path: '/login',
    name: 'login',
    meta: {
      title: 'Login - 登录',
      hideInMenu: true
    },
    component: () => import('@/view/login/login.vue')
  },
  {
    path: '/resetPwd',
    name: 'resetPwd',
    meta: {
      title: '重置密码',
      hideInMenu: true
    },
    component: () => import('@/view/resetPwd.vue')
  },
  {
    path: '/',
    name: '_home',
    redirect: '/home',
    component: Main,
    meta: {
      title: '首页',
      notCache: true,
      icon: 'md-home',
    },
    children: [
      {
        path: '/home',
        name: 'home',
        meta: {
          title: '首页',
          notCache: true,
          icon: 'md-home'
        },
        component: () => import('@/view/biz/home.vue')
      }
    ]
  },
  {
    path: '/base',
    name: 'base',
    meta: {
      icon: '_company',
      title: '基本信息管理',
      access: ['/base/device', '/base/trainee', '/base/coach', '/base/team', '/base/subAdmin']
    },
    component: Main,
    children: [
      {
        path: 'device',
        name: 'device',
        meta: {
          icon: '_device',
          title: '设备管理',
          access: ['/base/device']
        },
        component: () => import('@/view/biz/deviceMgr.vue')
      },
      {
        // path: 'trainer',
        path: 'trainee',
        name: 'trainer',
        meta: {
          icon: '_student',
          title: '学员管理',
          access: ['/base/trainee']
        },
        component: () => import('@/view/biz/trainerMgr.vue')
      },
      {
        path: 'team',
        name: 'team',
        meta: {
          icon: '_student',
          title: '运动队管理',
          access: ['/base/team']
        },
        component: () => import('@/view/biz/teamMgr.vue')
      },

      {
        path: 'coach',
        name: 'coach',
        meta: {
          icon: '_coach',
          title: '教练管理',
          access: ['/base/coach']
        },
        component: () => import('@/view/biz/coachMgr.vue')
      },
      {
        path: 'subAdmin',
        name: 'subAdmin',
        meta: {
          icon: '_subadmin',
          title: '子管理员管理',
          access: ['/base/subAdmin']
        },
        component: () => import('@/view/biz/subAdminMgr.vue')
      },
      {
        path: 'warn',
        name: 'warn',
        meta: {
          icon: '_course',
          title: '告警管理',
          access: ['/base/coach']
        },
        component: () => import('@/view/biz/warnMgr.vue')
      }
    ]
  },
  {
    path: '/plan',
    name: 'plan',
    meta: {
      icon: '_plan',
      title: '计划分配',
      access: ['/plan/planMgr', '/plan/planAssign']
    },
    component: Main,
    children: [
      {
        path: 'courseMgr',
        name: 'courseMgr',
        meta: {
          icon: '_course',
          title: '课程制定',
          access: ['/plan/courseMgr']
        },
        component: () => import('@/view/biz/plan/courseMgr.vue')
      },
      {
        path: 'planMgr',
        name: 'planMgr',
        meta: {
          icon: '_jihua',
          title: '计划制定',
          access: ['/plan/planMgr']
        },
        component: () => import('@/view/biz/plan/planMgr.vue')
      }
    ]
  },
  {
    path: '/analysis',
    name: 'analysis',
    meta: {
      icon: '_analysis',
      access: ['/analysis/analysisReport'],
      title: '分析报告'
    },
    component: Main,
    children: [
      {
        path: 'analysisReport',
        name: 'analysisReport',
        meta: {
          icon: '_analysis',
          access: ['/analysis/analysisReport'],
          title: '学员分析报告'
        },
        component: () => import('@/view/biz/analysis/analysisReport.vue')
      }
    ]
  },
  {
    path: '/sys',
    name: 'sys',
    meta: {
      icon: 'md-settings',
      title: '系统管理',
      access: ['/sys/admin', '/sys/trainCenter']
    },
    component: Main,
    children: [
      {
        path: 'admin',
        name: 'admin',
        meta: {
          icon: 'md-person',
          title: '管理员维护',
          access: ['/sys/admin']
        },
        component: () => import('@/view/biz/sys/adminMgr.vue')
      },
      {
        path: 'trainCenter',
        name: 'trainCenter',
        meta: {
          icon: '_company',
          title: '训练中心维护',
          access: ['/sys/trainCenter']
        },
        component: () => import('@/view/biz/sys/trainCenterMgr.vue')
      },
      {
        path: 'softVersion',
        name: 'softVersion',
        meta: {
          icon: '_version',
          title: '软件版本管理',
          access: ['/sys/softVersion']
        },
        component: () => import('@/view/biz/sys/softVersionMgr.vue')
      },
      {
        path: 'feedback',
        name: 'feedback',
        meta: {
          icon: '_feedback',
          title: '意见反馈管理',
          access: ['/sys/feedback']
        },
        component: () => import('@/view/biz/sys/feedbackMgr.vue')
      }
    ]
  },

  {
    path: '/video',
    name: 'video',
    meta: {
      hideInMenu: true
    },
    component: () => import('@/view/biz/video.vue')
  },
  {
    path: '/groupReport',
    name: 'groupReport',
    meta: {
      hideInMenu: true
    },
    component: () => import('@/view/biz/groupReport.vue')
  },
  {
    path: '/freeTrainReport',
    name: 'freeTrainReport',
    meta: {
      hideInMenu: true
    },
    component: () => import('@/view/biz/freeTrainReport.vue')
  },
  {
    path: '/trainDetailReport',
    name: 'trainDetailReport',
    meta: {
      hideInMenu: true
    },
    component: () => import('@/view/biz/trainDetailReport.vue')
  },
  {
    path: '/detailReport',
    name: 'detailReport',
    meta: {
      hideInMenu: true
    },
    component: () => import('@/view/biz/trainDetailReport.vue')
  },
  {
    path: '/401',
    name: 'error_401',
    meta: {
      hideInMenu: true
    },
    component: () => import('@/view/error-page/401.vue')
  },
  {
    path: '/500',
    name: 'error_500',
    meta: {
      hideInMenu: true
    },
    component: () => import('@/view/error-page/500.vue')
  },
  {
    path: '*',
    name: 'error_404',
    meta: {
      hideInMenu: true
    },
    component: () => import('@/view/error-page/404.vue')
  }
]
